#ifndef LEGDATA_H
#define LEGDATA_H

/*!
\class LegData

Leg data is the common data that is used by the loop
closure algorithm.  LegData is the linearize data
from a Leg.  Linearize mean that compass, length, azmith, is converted
into a unit length vector width a length. The subclass of the Leg class should define
how to linearize it's data. A Leg may have one or more LegData.
  */

//Our includes
#include "Vec3.h"

class LegData {
public:

    enum {
        FRONT_SITE, //!The leg data from the From station to To station
        BACK_SITE //!The leg data from the To station to From station
    } Direction;

    //Constructors
    LegData(const Vec3& vector, LegData::Direction shotDirection = FRONT_SITE );
    LegData(const Vec3& unitVector, double length, LegData::Direction shotDirection = FRONT_SITE );

    //!Get the length
    double GetLength() { return Length; }

    //!Get the direction
    Direction GetDirection() { return Dir; }

    //!Get th Unit vector of the leg data
    Vec3 GetUnitVector() { return UnitVector; }

protected:

    double Length;
    Direction Dir;
    Vec3 UnitVector;

};

#endif // LEGDATA_H
